Verification of an In-place Quicksort in ACL2
نویسندگان
چکیده
We present a proof of an efficient, in-place Quicksort implementation [1] using single-threaded objects (stobjs) in ACL2 [3, 4]. We demonstrate that the Quicksort implementation is equivalent to a simple insertion-sort function that is shown to produce an ordered permutation of its input. For ease of reasoning, the demonstration is carried out by verifying a series of ”intermediate” sorting functions. The intermediate functions are equivalent to the efficient Quicksort implementation, but written in a more applicative style, and hence easier to reason about. We then decompose the proof into a verification of the equivalence of the efficient implementation with an intermediate implementation, and a proof of correctness of the intermediate implementation. We show how this decomposition allows us to simplify our reasoning about stobjs and obtain a cleaner proof of the implementation.
منابع مشابه
A System for the Formal Verification of LabVIEW/G Diagrams
The purpose of this thesis is to present a prototype system for the verification of LabVIEW programs using ACL2. LabVIEW is a graphical data-flow programming language commonly used in data acquisition and control application. ACL2 is a programming language, formal logic and theorem prover that has seen broad use in the verification of industrial hardware and software systems. I will present an ...
متن کاملIndustrial-Strength Documentation for ACL2
The ACL2 theorem prover is a complex system. Its libraries are vast. Industrial verification efforts may extend this base with hundreds of thousands of lines of additional modeling tools, specifications, and proof scripts. High quality documentation is vital for teams that are working together on projects of this scale. We have developed XDOC, a flexible, scalable documentation tool for ACL2 th...
متن کاملFormal Verification of Molecular Computational Models in ACL2: A Case Study
Theorem proving is a classical AI problem with a broad range of applications. Since its complexity is exponential in the size of the problem, many methods to parallelize the process has been proposed. One of these approaches is based on the massive parallelism of molecular reactions. ACL2 is an automated theorem prover especially adequate for algorithm verification. In this paper we present an ...
متن کاملVerification of Building Blocks for Asynchronous Circuits
Scalable formal verification constitutes an important challenge for the design of asynchronous circuits. Deadlock freedom is a property that is desired but hard to verify. It is an emergent property that has to be verified monolithically. We present our approach to using ACL2 to verify necessary and sufficient conditions over asynchronous delay-insensitive primitives. These conditions are used ...
متن کاملThesis Draft
The purpose of this thesis is to present a prototype system for the verification of LabVIEW programs using ACL2. LabVIEW is a graphical data-flow programming language commonly used in data acquisition and control application. ACL2 is a programming language, formal logic and theorem prover that has seen broad use in the verification of industrial hardware and software systems. I will present an ...
متن کامل